const path = require('path'); // 处理路径
const copyFiles = require('../utils/copyFiles'); // 引入文件拷贝工具
const getProjectDetails = require('../utils/inquirerPrompts'); // 引入交互工具
const { execSync } = require('child_process'); // 用于执行终端命令

// 定义项目初始化函数
async function initProject(projectName) {
    // 通过交互工具获取用户的框架选择
    const { framework } = await getProjectDetails();

    // 定义模板路径和目标路径
    const templatePath = path.resolve(__dirname, `../templates/${framework.toLowerCase()}-template`);
    const targetPath = path.resolve(process.cwd(), projectName || 'new-project');

    console.log(`Creating project in ${targetPath}...`); // 提示用户创建项目中
    copyFiles(templatePath, targetPath); // 拷贝模板到目标目录

    console.log('Installing dependencies...'); // 提示用户安装依赖
    execSync('npm install', { cwd: targetPath, stdio: 'inherit' }); // 在目标目录中安装依赖

    console.log('Project setup complete!'); // 提示用户项目创建完成
}

module.exports = initProject; // 导出函数